Advances in semi-conductor processing and logic design have permitted an increase in the amount of logic that may be present on integrated circuit devices. As a result, computer system configurations have evolved from a single or multiple integrated circuits in a system to multiple hardware threads, multiple cores, multiple devices, and/or complete systems on individual integrated circuits. Additionally, as the density of integrated circuits has grown, the power requirements for computing systems (from embedded systems to servers) have also escalated. Furthermore, software inefficiencies, and its requirements of hardware, have also caused an increase in computing device energy consumption. In fact, some studies indicate that computers consume a substantial amount of the entire electricity supply for the United States of America.
As a result, there is a vital need for energy efficiency and conservation associated with integrated circuits. And as servers, desktop computers, notebooks, ultrabooks, tablets, mobile phones, processors, embedded systems, etc. become even more prevalent (from inclusion in the typical computer, automobiles, and televisions to biotechnology), the effect of computing device sales stretches well outside the realm of energy consumption into a substantial, direct effect on The United States economy, as computing device related sales already have a large causal relationship with The United States Gross Domestic Product. Moreover, computer sales internationally have drastically increased; especially in emerging markets.
When power consumption becomes more of a factor, the trend towards always increasing performance is now being counterbalanced with power consumption concerns. For example, some power capping technologies, such as those utilized in data centers, ensure power doesn't exceed a limit. However, within platforms or single integrated circuits, power consumption and regulation has predominately been decentralized and uncoordinated. As an example, in a typical server, the memory subsystem may consume as much as ⅓ of the total power budget for a platform. Yet, up until now memory has not been incorporated in a platform power budget. So, even if a power cap is placed on the server, ⅓ of the power consumption resides outside the budget, which potentially significantly limits power saving opportunities.
Furthermore, even components that fall within the power budget are often not efficiently managed. Previously, static power capping limits may be set on components according to an overall budget. But the static limits typically include guard bands (headroom for error associated with static assumptions that are not dynamically tailored to a platform or component), which limit the potential for power savings. Moreover, such capping techniques are often worse for burst-like workloads, such as memory. As a result, there is currently no efficient way of dynamically translating a power limit to a domain and/or component that maximizes performance for a given power limit.